package Collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

// 加强型for循环
/*
  jdk五之后推出了一个新特性 增强型for循环
  也成为新循环  可以使用相同的语法遍历集合或数组
  语法：
   for(元素类型 变量命; 集合或数组){ 。。。    }

   新循环值时用来遍历数组和集合  不代替普通循环
   编译器并不认识新循环、

    新循环会被编译器改为传统的for循环遍历


 */
public class NewForDemo {


    public static void main(String[] args) {
        int[] arr = new int[5];
        for (int a : arr){
            System.out.println(a);
        }

        String[] strings = {"one","two","three"};
        for (String str : strings){
            System.out.println(str);
        }

        Collection c = new ArrayList();
        c.add(new Point(1,2));
        c.add(new Point(4,5));
        for (Object obj : c) {
            System.out.println(obj);
        }

        /*
        Collection<e> 集合定义了一个泛型 这里使用时指定e为String
         */
        Collection<String> c1 = new ArrayList<>();
        c1.add("noe");
        c1.add("two");
//        c1.add(123); 类型不匹配
        //遍历时可以直接用泛型指定的数据类型接受元素 无需手动造型
        for (String str : c1) {
            System.out.println(str);
        }
        Iterator<String> it = c1.iterator();
        while (it.hasNext()){
            String str = it.next();
            System.out.println(str);
        }



    }
}
